package main

import "fmt"

//常量在包作用域还是局部作用域都是可以吧不被使用的
//定义常亮的格式 const 常量名 类型 = 值
const pai float32 = 3.14

//简写 const 常量名  =  值
const s1 = 3.14

// 批量声明常量 v1
const s2, s3 = 3.14, 2

// 批量申明常量 v2
const (
	name     = "阿西吧"
	age  int = 10
)

//iota
//iota是golang语言的常量计数器,只能在常量的表达式中使用。
//iota在const关键字出现时将被重置为0(const内部的第一行之前)
//const中每新增一行常量声明将使iota计数一次(iota可理解为const语句块中的行索引)。
const (
	h1 = iota //0
	h2 = iota //1
	h3 = iota //2
)

//如果在 const() 了 , 如果第没有写值,那么值就是上一个常量相同
const (
	f1 = 100  //100
	f2        //100
	f3 = iota //2
	f4        //3

)

//第一个iota为0
//第二个iota为1
const (
	k1, k2 = iota + 1, iota + 2 // 1 2
	o1, o2 = iota + 2, iota + 3 // 3 4
)

func main() {

	fmt.Println(h1)
	fmt.Println(h2)
	fmt.Println(h3)

	fmt.Println(f1)
	fmt.Println(f2)
	fmt.Println(f3)
	fmt.Println(f4)

	fmt.Println(k1)
	fmt.Println(k2)
	fmt.Println(o1)
	fmt.Println(o2)
}
